package com.esoon.entity;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * CSR_SERVICE_RECORD
 * @author 
 */
@Data
public class CsrServiceRecord implements Serializable {
    /**
     * PK
     */
    private Integer srId;

    /**
     * 联系号码
     */
    private String srPhone;

    /**
     * 呼入呼出
     */
    private String srDirection;

    /**
     * 服务渠道
     */
    private String srChannel;

    /**
     * 是否接通
     */
    private String srIfAnswer;

    /**
     * 会话ID
     */
    private String srConnid;

    /**
     * 关联小结类型: CSR_SERVICE_TYPE.ST_ID
     */
    private Integer srServiceType;

    /**
     * 满意度
     */
    private String srSatisfied;

    /**
     * 关联客户管理: CSR_CUSTOMER.CR_ID
     */
    private Integer srCustomer;

    /**
     * 关联字段模板: COS_CUSTOM_TEMPLATE.CT_ID
     */
    private Integer srTemplate;

    /**
     * 备注
     */
    private String srMark;

    /**
     * 附件
     */
    private String srFile;

    /**
     * 扩展字段
     */
    private String field1;

    /**
     * 扩展字段
     */
    private String field2;

    /**
     * 扩展字段
     */
    private String field3;

    /**
     * 扩展字段
     */
    private String field4;

    /**
     * 扩展字段
     */
    private String field5;

    /**
     * 扩展字段
     */
    private String field6;

    /**
     * 扩展字段
     */
    private String field7;

    /**
     * 扩展字段
     */
    private String field8;

    /**
     * 扩展字段
     */
    private String field9;

    /**
     * 扩展字段
     */
    private String field10;

    /**
     * 扩展字段
     */
    private String field11;

    /**
     * 扩展字段
     */
    private String field12;

    /**
     * 扩展字段
     */
    private String field13;

    /**
     * 扩展字段
     */
    private String field14;

    /**
     * 扩展字段
     */
    private String field15;

    /**
     * 扩展字段
     */
    private String field16;

    /**
     * 扩展字段
     */
    private String field17;

    /**
     * 扩展字段
     */
    private String field18;

    /**
     * 扩展字段
     */
    private String field19;

    /**
     * 扩展字段
     */
    private String field20;

    private Integer createId;

    /**
     * 创建人
     */
    private String creater;

    /**
     * 部门编号
     */
    private Integer createDeptId;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新人
     */
    private Integer updateId;

    /**
     * 更新人
     */
    private String updater;

    /**
     * 更新时间
     */
    private Date updateTime;

    /**
     * 租户编号
     */
    private Integer tenantId;

    /**
     * 租户名称
     */
    private String tenantName;

    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        CsrServiceRecord other = (CsrServiceRecord) that;
        return (this.getSrId() == null ? other.getSrId() == null : this.getSrId().equals(other.getSrId()))
            && (this.getSrPhone() == null ? other.getSrPhone() == null : this.getSrPhone().equals(other.getSrPhone()))
            && (this.getSrDirection() == null ? other.getSrDirection() == null : this.getSrDirection().equals(other.getSrDirection()))
            && (this.getSrChannel() == null ? other.getSrChannel() == null : this.getSrChannel().equals(other.getSrChannel()))
            && (this.getSrIfAnswer() == null ? other.getSrIfAnswer() == null : this.getSrIfAnswer().equals(other.getSrIfAnswer()))
            && (this.getSrConnid() == null ? other.getSrConnid() == null : this.getSrConnid().equals(other.getSrConnid()))
            && (this.getSrServiceType() == null ? other.getSrServiceType() == null : this.getSrServiceType().equals(other.getSrServiceType()))
            && (this.getSrSatisfied() == null ? other.getSrSatisfied() == null : this.getSrSatisfied().equals(other.getSrSatisfied()))
            && (this.getSrCustomer() == null ? other.getSrCustomer() == null : this.getSrCustomer().equals(other.getSrCustomer()))
            && (this.getSrTemplate() == null ? other.getSrTemplate() == null : this.getSrTemplate().equals(other.getSrTemplate()))
            && (this.getSrMark() == null ? other.getSrMark() == null : this.getSrMark().equals(other.getSrMark()))
            && (this.getSrFile() == null ? other.getSrFile() == null : this.getSrFile().equals(other.getSrFile()))
            && (this.getField1() == null ? other.getField1() == null : this.getField1().equals(other.getField1()))
            && (this.getField2() == null ? other.getField2() == null : this.getField2().equals(other.getField2()))
            && (this.getField3() == null ? other.getField3() == null : this.getField3().equals(other.getField3()))
            && (this.getField4() == null ? other.getField4() == null : this.getField4().equals(other.getField4()))
            && (this.getField5() == null ? other.getField5() == null : this.getField5().equals(other.getField5()))
            && (this.getField6() == null ? other.getField6() == null : this.getField6().equals(other.getField6()))
            && (this.getField7() == null ? other.getField7() == null : this.getField7().equals(other.getField7()))
            && (this.getField8() == null ? other.getField8() == null : this.getField8().equals(other.getField8()))
            && (this.getField9() == null ? other.getField9() == null : this.getField9().equals(other.getField9()))
            && (this.getField10() == null ? other.getField10() == null : this.getField10().equals(other.getField10()))
            && (this.getField11() == null ? other.getField11() == null : this.getField11().equals(other.getField11()))
            && (this.getField12() == null ? other.getField12() == null : this.getField12().equals(other.getField12()))
            && (this.getField13() == null ? other.getField13() == null : this.getField13().equals(other.getField13()))
            && (this.getField14() == null ? other.getField14() == null : this.getField14().equals(other.getField14()))
            && (this.getField15() == null ? other.getField15() == null : this.getField15().equals(other.getField15()))
            && (this.getField16() == null ? other.getField16() == null : this.getField16().equals(other.getField16()))
            && (this.getField17() == null ? other.getField17() == null : this.getField17().equals(other.getField17()))
            && (this.getField18() == null ? other.getField18() == null : this.getField18().equals(other.getField18()))
            && (this.getField19() == null ? other.getField19() == null : this.getField19().equals(other.getField19()))
            && (this.getField20() == null ? other.getField20() == null : this.getField20().equals(other.getField20()))
            && (this.getCreateId() == null ? other.getCreateId() == null : this.getCreateId().equals(other.getCreateId()))
            && (this.getCreater() == null ? other.getCreater() == null : this.getCreater().equals(other.getCreater()))
            && (this.getCreateDeptId() == null ? other.getCreateDeptId() == null : this.getCreateDeptId().equals(other.getCreateDeptId()))
            && (this.getCreateTime() == null ? other.getCreateTime() == null : this.getCreateTime().equals(other.getCreateTime()))
            && (this.getUpdateId() == null ? other.getUpdateId() == null : this.getUpdateId().equals(other.getUpdateId()))
            && (this.getUpdater() == null ? other.getUpdater() == null : this.getUpdater().equals(other.getUpdater()))
            && (this.getUpdateTime() == null ? other.getUpdateTime() == null : this.getUpdateTime().equals(other.getUpdateTime()))
            && (this.getTenantId() == null ? other.getTenantId() == null : this.getTenantId().equals(other.getTenantId()))
            && (this.getTenantName() == null ? other.getTenantName() == null : this.getTenantName().equals(other.getTenantName()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getSrId() == null) ? 0 : getSrId().hashCode());
        result = prime * result + ((getSrPhone() == null) ? 0 : getSrPhone().hashCode());
        result = prime * result + ((getSrDirection() == null) ? 0 : getSrDirection().hashCode());
        result = prime * result + ((getSrChannel() == null) ? 0 : getSrChannel().hashCode());
        result = prime * result + ((getSrIfAnswer() == null) ? 0 : getSrIfAnswer().hashCode());
        result = prime * result + ((getSrConnid() == null) ? 0 : getSrConnid().hashCode());
        result = prime * result + ((getSrServiceType() == null) ? 0 : getSrServiceType().hashCode());
        result = prime * result + ((getSrSatisfied() == null) ? 0 : getSrSatisfied().hashCode());
        result = prime * result + ((getSrCustomer() == null) ? 0 : getSrCustomer().hashCode());
        result = prime * result + ((getSrTemplate() == null) ? 0 : getSrTemplate().hashCode());
        result = prime * result + ((getSrMark() == null) ? 0 : getSrMark().hashCode());
        result = prime * result + ((getSrFile() == null) ? 0 : getSrFile().hashCode());
        result = prime * result + ((getField1() == null) ? 0 : getField1().hashCode());
        result = prime * result + ((getField2() == null) ? 0 : getField2().hashCode());
        result = prime * result + ((getField3() == null) ? 0 : getField3().hashCode());
        result = prime * result + ((getField4() == null) ? 0 : getField4().hashCode());
        result = prime * result + ((getField5() == null) ? 0 : getField5().hashCode());
        result = prime * result + ((getField6() == null) ? 0 : getField6().hashCode());
        result = prime * result + ((getField7() == null) ? 0 : getField7().hashCode());
        result = prime * result + ((getField8() == null) ? 0 : getField8().hashCode());
        result = prime * result + ((getField9() == null) ? 0 : getField9().hashCode());
        result = prime * result + ((getField10() == null) ? 0 : getField10().hashCode());
        result = prime * result + ((getField11() == null) ? 0 : getField11().hashCode());
        result = prime * result + ((getField12() == null) ? 0 : getField12().hashCode());
        result = prime * result + ((getField13() == null) ? 0 : getField13().hashCode());
        result = prime * result + ((getField14() == null) ? 0 : getField14().hashCode());
        result = prime * result + ((getField15() == null) ? 0 : getField15().hashCode());
        result = prime * result + ((getField16() == null) ? 0 : getField16().hashCode());
        result = prime * result + ((getField17() == null) ? 0 : getField17().hashCode());
        result = prime * result + ((getField18() == null) ? 0 : getField18().hashCode());
        result = prime * result + ((getField19() == null) ? 0 : getField19().hashCode());
        result = prime * result + ((getField20() == null) ? 0 : getField20().hashCode());
        result = prime * result + ((getCreateId() == null) ? 0 : getCreateId().hashCode());
        result = prime * result + ((getCreater() == null) ? 0 : getCreater().hashCode());
        result = prime * result + ((getCreateDeptId() == null) ? 0 : getCreateDeptId().hashCode());
        result = prime * result + ((getCreateTime() == null) ? 0 : getCreateTime().hashCode());
        result = prime * result + ((getUpdateId() == null) ? 0 : getUpdateId().hashCode());
        result = prime * result + ((getUpdater() == null) ? 0 : getUpdater().hashCode());
        result = prime * result + ((getUpdateTime() == null) ? 0 : getUpdateTime().hashCode());
        result = prime * result + ((getTenantId() == null) ? 0 : getTenantId().hashCode());
        result = prime * result + ((getTenantName() == null) ? 0 : getTenantName().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", srId=").append(srId);
        sb.append(", srPhone=").append(srPhone);
        sb.append(", srDirection=").append(srDirection);
        sb.append(", srChannel=").append(srChannel);
        sb.append(", srIfAnswer=").append(srIfAnswer);
        sb.append(", srConnid=").append(srConnid);
        sb.append(", srServiceType=").append(srServiceType);
        sb.append(", srSatisfied=").append(srSatisfied);
        sb.append(", srCustomer=").append(srCustomer);
        sb.append(", srTemplate=").append(srTemplate);
        sb.append(", srMark=").append(srMark);
        sb.append(", srFile=").append(srFile);
        sb.append(", field1=").append(field1);
        sb.append(", field2=").append(field2);
        sb.append(", field3=").append(field3);
        sb.append(", field4=").append(field4);
        sb.append(", field5=").append(field5);
        sb.append(", field6=").append(field6);
        sb.append(", field7=").append(field7);
        sb.append(", field8=").append(field8);
        sb.append(", field9=").append(field9);
        sb.append(", field10=").append(field10);
        sb.append(", field11=").append(field11);
        sb.append(", field12=").append(field12);
        sb.append(", field13=").append(field13);
        sb.append(", field14=").append(field14);
        sb.append(", field15=").append(field15);
        sb.append(", field16=").append(field16);
        sb.append(", field17=").append(field17);
        sb.append(", field18=").append(field18);
        sb.append(", field19=").append(field19);
        sb.append(", field20=").append(field20);
        sb.append(", createId=").append(createId);
        sb.append(", creater=").append(creater);
        sb.append(", createDeptId=").append(createDeptId);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateId=").append(updateId);
        sb.append(", updater=").append(updater);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", tenantId=").append(tenantId);
        sb.append(", tenantName=").append(tenantName);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}